package juego.Graficos;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import juego.RankingHistorico.PersistenciaRankingHistorico;

public class Ganaste extends JPanel{

	private static final long serialVersionUID = 1L;
	
	private JLabel ganaste;
	private JLabel darPuntaje;
	private JLabel darMovimientos;
	private JButton jugarOtraVez;
	private JPanel cuerpoPrincipal;
	private JPanel centroPantalla;
	private JugarAction jugarAction;
	int movimientos;
	int puntaje;
	String nombre;
	
	public Ganaste(JugarAction unJugarAction){
		jugarAction = unJugarAction;
		setearCuerpoPrincipal();	
	}
	
	public void setearCuerpoPrincipal(){
	
		cuerpoPrincipal = new JPanel();
		cuerpoPrincipal.setLayout( new BorderLayout() );
		centroPantalla = new JPanel();
		centroPantalla.setLayout( new GridLayout() );
		
		jugarOtraVez = new JButton();
		ganaste = new JLabel();
		darPuntaje = new JLabel();
		darMovimientos = new JLabel();
		
		jugarOtraVez.setText("Jugar otra vez");
		ganaste.setText("¡GANASTE!");
		
		jugarOtraVez.setFont(new Font("sansserif",Font.ITALIC,40));
		ganaste.setFont(new Font("sansserif",Font.ITALIC,40));
		darMovimientos.setFont(new Font("sansserif",Font.ITALIC,20));
		darPuntaje.setFont(new Font("sansserif",Font.ITALIC,20));
	
		jugarOtraVez.setBackground(Color.LIGHT_GRAY);
		jugarOtraVez.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				PersistenciaRankingHistorico ranking = new PersistenciaRankingHistorico();
				ranking.guardarJugador(nombre, movimientos, puntaje);
				jugarAction.accionarJugar();
			}	
		});
		
		centroPantalla.setLayout(new GridLayout(4,1,20,20));
		centroPantalla.add(ganaste);
		centroPantalla.add(darMovimientos);
		centroPantalla.add(darPuntaje);
		centroPantalla.add(jugarOtraVez);
		
		cuerpoPrincipal.add(centroPantalla,BorderLayout.CENTER);
		cuerpoPrincipal.setBorder(new EmptyBorder(100, 50, 50, 50) );
		
		this.add(cuerpoPrincipal);
		this.setVisible(true);
	
	}
	
	public void setPuntaje(int puntaje, int sobraron,
			String nombre) {
		this.nombre= nombre;
		this.puntaje = puntaje;
		this.movimientos = sobraron;
		darMovimientos.setText("Te sobraron "+sobraron+" movimientos");
		darPuntaje.setText("Obtuviste un puntaje de "+puntaje+" puntos");
	}
}
